projects
/
project
/
bcm63xx
/
atf.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
8be7850
)
uniphier: revise SCP protocol handshake
author
Dai Okamura
<
[email protected]
>
Thu, 4 Oct 2018 23:56:24 +0000
(08:56 +0900)
committer
Masahiro Yamada
<
[email protected]
>
Tue, 30 Oct 2018 04:15:53 +0000
(13:15 +0900)
When the SoC issues a command IRQ to SCP, SCP sets STMTOBEIRQ as ACK.
The SoC must wait for it before issuing the next command.
This commit makes sure to meet the requirement.
Signed-off-by: Dai Okamura <
[email protected]
>
Signed-off-by: Masahiro Yamada <
[email protected]
>
plat/socionext/uniphier/uniphier_scp.c
patch
|
blob
|
history
diff --git
a/plat/socionext/uniphier/uniphier_scp.c
b/plat/socionext/uniphier/uniphier_scp.c
index 9a921c4a95d11ecfe9e2e589eb7c2774fc3c4073..58eb72eff0f94fdf4ea5fd7dcb46ddbea66c314a 100644
(file)
--- a/
plat/socionext/uniphier/uniphier_scp.c
+++ b/
plat/socionext/uniphier/uniphier_scp.c
@@
-12,7
+12,9
@@
#define UNIPHIER_ROM_RSV3 0x5980120c
#define UNIPHIER_STMBE2COM 0x5f800030
+#define UNIPHIER_STMTOBEIRQ 0x5f800060
#define UNIPHIER_BETOSTMIRQ0PT 0x5f800070
+#define UNIPHIER_BEIRQCLRPT 0x5f800072
#define UNIPHIER_SCP_READY_MAGIC 0x0000b6a5
@@
-59,6
+61,10
@@
static void uniphier_scp_send_packet(const uint8_t *packet, int packet_len)
}
mmio_write_8(UNIPHIER_BETOSTMIRQ0PT, 0x55);
+
+ while (!(mmio_read_32(UNIPHIER_STMTOBEIRQ) & BIT(1)))
+ ;
+ mmio_write_8(UNIPHIER_BEIRQCLRPT, BIT(1) | BIT(0));
}
static void uniphier_scp_send_cmd(const uint8_t *cmd, int cmd_len)